Using Web-Based Protocols to Assist Graphic Presentations When Providing Digital Video

ABSTRACT

Providing digital video having customized graphics whose appearance and operation are specified by a graphics template expressed using one or more web-based protocols. One or more software modules, executing on a media server, identify, for a particular digital video, a markup language document which describes or identifies a customized appearance of one or more graphics to be incorporated into a presentation of particular digital video and shown to an identified audience. The markup language document may be an Extensible Markup Language (XML) document or a HyperText Markup Language (HTML) document. The media server streams the particular digital video having the one or more graphics to a member of the identified audience in accordance with the markup language document. An HTML rendering engine, executing on the media server, may pass through one or more audio streams to be incorporated into an output stream without re-encoding the one or more audio streams.

CLAIM OF PRIORITY

This application is a continuation in part of, and claims priority to, U.S. Non-provisional patent application Ser. No. 15/699,544, entitled, “Using Web-Based Protocols to Assist Graphic Presentations in Digital Video Playout,” filed on Sep. 8, 2017, invented by Tim Warren, the disclosure of which is hereby incorporated by reference in its entirety for all purposes as if fully set forth herein.

U.S. Non-provisional patent application Ser. No. 15/699,544 claims priority to U.S. Provisional Patent App. Ser. No. 62/385,014, entitled, “Using Web-Based Protocols to Assist Graphic Presentations in Digital Video Playout,” filed on Sep. 8, 2016, invented by Tim Warren, the disclosure of which is hereby incorporated by reference in its entirety for all purposes as if fully set forth herein.

FIELD OF THE INVENTION

Embodiments of the invention generally relate to a managing the display of graphics in a variety of environments, such as a streaming environment and a broadcast environment.

BACKGROUND

In television broadcasting, the term “playout” is widely used to refer to the transmission of television channels from the broadcaster into broadcast networks that deliver the content to the audience. Example broadcast networks include NBC, ABC, CBS, the CW, and Fox. Video playout often occurs in a specialized facility that is owned by a broadcaster or operated by an independent specialist company that has been contracted to handle the playout for a number of channels from different broadcasters.

Modern television often utilizes the display of graphics in the foreground of television shows. For example, the logo of a broadcast network may be displayed in a bottom corner of a screen. As another example, a news ticker (also referred to a “crawler” or “slide”) may display slowly advancing text in the bottom portion of the screen. Animations or other graphical images may also be shown for various reasons, such as to signal a transition or as an advertisement for an upcoming show.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the invention are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:

FIG. 1 is a block diagram illustrating a digital video playout/streaming environment according to an embodiment of the invention;

FIG. 2 is a flowchart illustrating the steps of providing digital video having customized graphics according to an embodiment of the invention; and

FIG. 3 is a block diagram that illustrates a computer system upon which an embodiment of the invention may be implemented.

DETAILED DESCRIPTION OF THE INVENTION

Approaches for providing digital video having customized graphics are presented herein. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the embodiments of the invention described herein. It will be apparent, however, that the embodiments of the invention described herein may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form or discussed at a high level in order to avoid unnecessarily obscuring teachings of embodiments of the invention.

In the present state of the art, templates are used in specifying the presentation of certain graphical elements when playing out or streaming digital video. It has been observed that the present state of the art suffers from the burden of requiring those involved in the production and deployment of such templates to be immersed and skilled in certain technologies which are arcane, cumbersome, and not widely known. Consequently, the cost and time involved in preparing templates for a digital video distribution environment is high. This burden is especially troubling as the need for customized templates is increasing with the increasing trend of localizing digital content and the growing number of content distribution channels.

Embodiments of the invention provide for a new paradigm in the creation and use of graphics templates vis-à-vis the use of protocols from an entirely different context, namely web-based protocols. Approaches described herein enable broadcast networks or their delegates to design their own graphics templates expressed in web-based protocols such as Extensible Markup Language (XML) or HyperText Markup Language (HTML). In this way, the cost and effort in developing graphics templates for digital video distribution environments may be reduced.

The graphic templates of an embodiment may be employed in a variety of embodiments, such as a digital video playout environment, a digital video streaming environment, and an environment that supports both streaming video and playing out digital video.

FIG. 1 is a block diagram illustrating a digital video playout/digital streaming environment according to an embodiment of the invention. System 100 depicts a production environment and a playout/streaming environment. The production environment involves the creation and production of both live digital content and prepared content, which includes graphics templates 122. The playout/streaming environment refers to the environment involved in transmitting live and/or prepared content to broadcast networks and/or streaming services that deliver the content to their audience. A playout environment may also stream live and/or prepared content to one or more recipients directly.

The production environment may include both an integrated receiver-decoder (IRD) 110 and a graphics designer 120. While only one IRD 110 and one graphics designer 120 are depicted in FIG. 1, embodiments of the invention may employ any number of individual IRDs 110 and graphic designers 120.

IRD 110 is an electronic device which receives contribution feeds that are intended for re-broadcasting. IRD 110 may act as the interface between a receiving satellite dish or a telephone company network and a broadcasting facility video/audio infrastructure. A non-limiting, commercial example of IRD 110 is the Harmonic ProView family of products, available from Harmonic, Inc. of San Jose, Calif.

Graphics designer 120, as broadly used herein, represents any type of computer system upon which a user may configure and construct a graphics template 122. Graphics designer 120 may comprise software, which when executed, enables a user at a broadcast company, or their delegate, to design a graphics template 122 using a user interface or other such means.

A feature of an embodiment is that graphics template 122 is expressed using a web-based protocol, such as without limitation, Extensible Markup Language (XML), HyperText Markup Language (HTML) version 5.0 or later, and JavaScript. A graphics template is generally used in conjunction with a particular channel of the broadcast network.

Graphics template 122 may instruct how certain dynamic and static content is to be presented in digital video played out or streamed by media server 140. Example of dynamic content which may be specified by graphics template 122 are stock information, weather information, sports scores, and the text of a news ticker. Examples of static content which may be specified by graphics template 122 is a logo or graphic.

The playout/streaming environment may include graphics store 130, media server 140, and automation system 150. While only one graphics store 130, media server 140, and automation system 150 are depicted in FIG. 1, embodiments of the invention may employ any number of individual graphics stores 130, media servers 140, and automation systems 150.

The playout/streaming environment may correspond to a variety of different contexts. For example, the playout/streaming environment may correspond to, or be implemented by, an appliance at or accessible to the production environment. Alternately, the playout/streaming environment may be implemented by a cloud environment in which one or more components of the playout/streaming environment are located remotely over a network (such as but not limited to the Internet or an Intranet) from one another.

Graphics store 130 represents a persistent storage medium for storing a variety of content to be played out or streamed by media server 140. After a graphics template 122 has been defined using graphics designer 120, a user may instruct graphics designer 120 to upload or transmit a copy of the defined graphics template 122 to graphics store 130 for storage thereon. A non-limiting, commercial example of graphics store 130 is the Harmonic MediaGrid family of products, available from Harmonic, Inc. of San Jose, Calif. In an embodiment, graphics store 130 may store a graphics template 122 either locally or at another location accessible to graphics store, such as a storage mechanism accessible over a network via a web-based address.

Media server 140 may be responsible for “playing out” or transmitting live television content and prerecorded television content to a broadcast network. A non-limiting, commercial example of media server 140 is the Harmonic Spectrum family of products, available from Harmonic, Inc. of San Jose, Calif. Media server 140 may also be responsible for streaming digital content to one or more intended recipients. Output 160 of media server 140 represents various channels of content to be delivered. Media server 140 may switch between live content (such as a live sporting event) and prerecorded content (such as an advertisement) on a particular channel in accordance with the commands received from automation system 150. In an embodiment, media server 140 may obtain live and/or prerecorded television content to be played out or streamed over a network from a variety of sources, such as local source or retrieved from a remote source, located over a network, using a web-based address.

Automation system 150, as broadly used herein, represents a device for sending commands and instructions to media server 140. Automation system 150 may be used to send commands to media server 140 for instructing media server what content to display on a particular channel. Additionally, automation system 150 may be used to specify what graphics templates 122 should be used in displaying graphics on a particular channel. Automation system 150 may record a user's instruction with respect to when and how a particular graphics template 122 should be used on a particular channel, and those instructions will be communicated to media server 140 where those instructions are subsequently performed by media server 140.

FIG. 2 is a flowchart illustrating the steps of generating captions for digital video according to an embodiment of the invention. In step 210, media server 140 identifies, for a particular digital video, a particular graphics template 122 expressed using web-based protocols. Media server 140 may be instructed by automation system 150 as to which particular graphics template 122 should be used for a particular channel and in which circumstance. For example, a certain graphics template 122 may be used to indicate a news ticker during a particular television show, while a different graphics template may be used to display a corporate logo in the bottom of a screen during a different television show.

In step 220, in response to a command from automation system 150, media server 140 streams, broadcasts, or otherwise provides, a particular digital video with graphics in accordance with a particular graphics template 122 expressed using web-based protocol. In an embodiment, media server 140 may comprise a rendering engine capable of rendering web-based protocols such as XML, HTML, and JavaScript. The rendering engine may render a graphics template 122 and overlay the rendered output on top of the digital video, which will be subsequently used as the channel source as output 160.

In an embodiment, the web-based protocol rendering engine, executing on media server 140, may opt to not re-encode any audio content and instead, allow any audio content to pass through the rendering engine without re-recoding; consequently, the audio content will be disposed within output stream without re-encoding by the web-based protocol rendering engine. While typical HTML rendering engines do not function in this matter, such an embodiment is advantageous as it is difficult or not feasible to re-encode certain audio formats, such as Dolby.

In an embodiment, IRD 110, graphics designer 120, graphics store 130, media server 140, and automation system 150 may each be implemented by one or more computer systems. FIG. 3 is a block diagram that illustrates a computer system 300 upon which an embodiment of the invention may be implemented. In an embodiment, computer system 300 includes processor 304, main memory 306, ROM 308, storage device 310, and communication interface 318. Computer system 300 includes at least one processor 304 for processing information. Computer system 300 also includes a main memory 306, such as a random-access memory (RAM) or other dynamic storage device, for storing information and instructions to be executed by processor 304. Main memory 306 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 304. Computer system 300 further may include a read only memory (ROM) 308 or other static storage device for storing static information and instructions for processor 304. A storage device 310, such as a magnetic disk or optical disk, is provided for storing information and instructions.

Computer system 300 may be, but need not be, coupled to a display 312, such as a cathode ray tube (CRT), a LCD monitor, and a television set, for displaying information to a user. An input device 314, including alphanumeric and other keys, may be, but need not be, coupled to computer system 300 for communicating information and command selections to processor 304. Other non-limiting, illustrative examples of input device 314 include a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 304 and for controlling cursor movement on display 312. While only one input device 314 is depicted in FIG. 3, embodiments of the invention may include any number of input devices 314 coupled to computer system 300 or may not include an input device 314 at all.

Embodiments of the invention are related to the use of computer system 300 for implementing the techniques described herein. According to one embodiment of the invention, those techniques are performed by computer system 300 in response to processor 304 executing one or more sequences of one or more instructions contained in main memory 306. Such instructions may be read into main memory 306 from another machine-readable medium, such as storage device 310. Execution of the sequences of instructions contained in main memory 306 causes processor 304 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement embodiments of the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.

The term “non-transitory machine-readable storage medium” as used herein refers to any tangible medium that participates in storing instructions which may be provided to processor 304 for execution. Non-limiting, illustrative examples of non-transitory machine-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, or any other medium from which a computer can read.

Various forms of machine-readable media may be involved in carrying one or more sequences of one or more instructions to processor 304 for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a network link 320 to computer system 300.

Communication interface 318 provides a two-way data communication coupling to a network link 320 that is connected to a local network. For example, communication interface 318 may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 318 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 318 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.

Network link 320 typically provides data communication through one or more networks to other data devices. For example, network link 320 may provide a connection through a local network to a host computer or to data equipment operated by an Internet Service Provider (ISP).

Computer system 300 can send messages and receive data, including program code, through the network(s), network link 320 and communication interface 318. For example, a server might transmit a requested code for an application program through the Internet, a local ISP, a local network, subsequently to communication interface 318. The received code may be executed by processor 304 as it is received, and/or stored in storage device 310, or other non-volatile storage for later execution.

In the foregoing specification, embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. Thus, the sole and exclusive indicator of what is the invention, and is intended by the applicants to be the invention, is the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction. Any definitions expressly set forth herein for terms contained in such claims shall govern the meaning of such terms as used in the claims. Hence, no limitation, element, property, feature, advantage, or attribute that is not expressly recited in a claim should limit the scope of such claim in any way. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. 

What is claimed is:
 1. A non-transitory computer-readable storage medium storing one or more sequences of instructions for providing digital video having customized graphics, which when executed by one or more processors, cause: at a media server, one or more software modules identifying, for a particular digital video, a markup language document which describes or identifies a customized appearance of one or more graphics to be incorporated into a particular presentation of said particular digital video and shown to an identified audience; and the media server streaming and/or broadcasting the particular digital video with the one or more graphics to a member of said identified audience in accordance with the markup language document.
 2. The non-transitory computer-readable storage medium of claim 1, wherein the markup language document is an Extensible Markup Language (XML) document or a HyperText Markup Language (HTML) document.
 3. The non-transitory computer-readable storage medium of claim 1, wherein the markup language document comprises JavaScript.
 4. The non-transitory computer-readable storage medium of claim 1, wherein the one or more sequences of instructions, when executed, further cause: an HTML rendering engine, executing on the media server, passing through one or more audio streams to be incorporated into an output stream used in streaming and/or broadcasting the particular digital video without re-encoding the one or more audio streams.
 5. The non-transitory computer-readable storage medium of claim 1, wherein the media server resides in a cloud-based environment.
 6. The non-transitory computer-readable storage medium of claim 1, wherein the media server receives the markup language document from a production environment across a network.
 7. An apparatus for providing digital video having customized graphics, comprising: one or more processors; and one or more non-transitory computer-readable storage mediums storing one or more sequences of instructions, which when executed, cause: at a media server, one or more software modules identifying, for a particular digital video, a markup language document which describes or identifies a customized appearance of one or more graphics to be incorporated into a particular presentation of said particular digital video and shown to an identified audience; and the media server streaming and/or broadcasting the particular digital video with the one or more graphics to a member of said identified audience in accordance with the markup language document.
 8. The apparatus of claim 7, wherein the markup language document is an Extensible Markup Language (XML) document or a HyperText Markup Language (HTML) document.
 9. The apparatus of claim 7, wherein the markup language document comprises JavaScript.
 10. The apparatus of claim 7, wherein the one or more sequences of instructions, when executed, further cause: an HTML rendering engine, executing on the media server, passing through one or more audio streams to be incorporated into an output stream used in streaming and/or broadcasting the particular digital video without re-encoding the one or more audio streams.
 11. The apparatus of claim 7, wherein the media server resides in a cloud-based environment.
 12. The apparatus of claim 7, wherein the media server receives the markup language document from a production environment across a network.
 13. A method for providing digital video having customized graphics, comprising: at a media server, one or more software modules identifying, for a particular digital video, a markup language document which describes or identifies a customized appearance of one or more graphics to be incorporated into a particular presentation of said particular digital video and shown to an identified audience; and the media server streaming and/or broadcasting the particular digital video with the one or more graphics to a member of said identified audience in accordance with the markup language document.
 14. The method of claim 13, wherein the markup language document is an Extensible Markup Language (XML) document or a HyperText Markup Language (HTML) document.
 15. The method of claim 13, wherein the markup language document comprises JavaScript.
 16. The method of claim 13, wherein the one or more sequences of instructions, when executed, further cause: an HTML rendering engine, executing on the media server, passing through one or more audio streams to be incorporated into an output stream used in streaming and/or broadcasting the particular digital video without re-encoding the one or more audio streams.
 17. The method of claim 13, wherein the media server resides in a cloud-based environment.
 18. The method of claim 13, wherein the media server receives the markup language document from a production environment across a network. 